home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2002 #11
/
Amiga Plus CD - 2002 - No. 11.iso
/
Tools
/
ShareMailGiftware
/
AmigaTalk
/
user
/
VectorN.st
< prev
Wrap
Text File
|
2002-10-27
|
1KB
|
52 lines
" -------------------------------------------------------------- "
" VectorN.st - Implementation of Vectors of n-dimensions. "
" -------------------------------------------------------------- "
Class VectorN :Magnitude ! n ele !
[
new: newElements
(newElements > 3)
ifFalse: [ ('size of VectorN S/B > 3!') print.
^ nil
].
n <- newElements.
ele <- Array new: numElements.
1 to: n do: [:i | ele at: i put: (Float new: 0.0)].
^ self
|
componentAt: index
^ (ele at: index)
|
setComponent: val at: index
(index > n)
ifTrue: [ ('Index out of range for VectorN!') print.
^ nil
].
ele at: index put: val.
^ ele
|
norm ! sum x !
sum <- Float new: 0.0.
(1 to: n) do: [:i | x <- ((ele at: i) * (ele at: i)).
sum <- (sum + x)
].
^ (sum sqrt)
|
scale: s
(1 to: n) do: [:i | ele at: i put: (s * (ele at: i))].
^ ele
|
dot: b ! sum x !
sum <- Float new: 0.0.
(1 to: n) do: [:i | x <- ((ele at: i) * (b at: i)).
sum <- sum + x
]
^ sum
]